/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package modeladesktop.algoritmo;

import modeladesktop.gui.Analisis;

/**
 *
 * @author ddhernan
 */
public class Anov {
    private int N;
    private int K;
    private double scr;
    private double sce;
    private double sct;
    private double cme;
    private double scx;
    private double scm;
    private double se;
    private double sb1;



    private double[][] matriz=new double[3][5];

    public Anov(Analisis analizado,double[][] indepen){
        calcScx(analizado, indepen);
        calcScm(analizado);
        calcSe(analizado);
        calcSb1(analizado);
        calcCme(analizado);
        this.N=analizado.N;
        this.K=analizado.K;
        this.scr=analizado.scr;
        this.sce=analizado.sce;
        this.sct=analizado.sct;
        //this.cme=analizado.cme;
    }
    public void calc(Analisis analizado){
        matriz[0][0]=K;
        matriz[1][0]=N-K-1;
        matriz[2][0]=N-1;
        matriz[0][1]=scr;
        matriz[1][1]=sce;
        matriz[2][1]=sct;
        matriz[0][2]=scr/K;
        matriz[1][2]=sce/(N-K-1);
        matriz[0][3]=scr/cme;
        analizado.anova=matriz;
        
    }
    /*modificacion de variables para regresion y Anova darn1986*/
	public void calcScx(Analisis analizado,double indep[][]){
        double sumXTemp=0;
        double sumXCuadTemp=0;
        for(int i=0;i<indep.length;i++){
            sumXTemp+=indep[i][1];
            sumXCuadTemp+=(indep[i][1]*indep[i][1]);
        }
        this.scx=(sumXCuadTemp-((sumXTemp*sumXTemp)/indep.length));

    }
    public void calcScm(Analisis analizado){
        this.scm=analizado.sce/(analizado.N-analizado.K-1);

    }
    public void calcSe(Analisis analizado){
        this.se=Math.sqrt(scm);

    }
    public void calcSb1(Analisis analizado){
        this.sb1=se/Math.sqrt(scx);

    }
    public void calcCme(Analisis analizado){
        this.cme=analizado.sce/(analizado.N-2);

    }
	/*fin de la modificacion*/
    



}
